package com.example.pay.controller;

import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.UUID;

/**
 * @Author: Wu YunXia
 * @Description:
 * @Date: Created in 11:09 2020/12/9
 * @Modefied By:
 */
@RestController
@RequestMapping("/file")
public class FileController {


//定义图片存储在服务器的路径
public static final String PICTUREURL = "D:/images/";
public static final String CONFIGUREURL = "http://169.254.140.133:8082/";
@RequestMapping("/uploadImg")
public String uploadPictureByFile(@RequestParam("file") MultipartFile file) {
    // TODO 自动生成的方法存根
    String filename1 = "picture_" + UUID.randomUUID() + ".jpg";//生成唯一图片路径
    if (!file.isEmpty()) {
        try {
            File filepath = new File(PICTUREURL);
            if (!filepath.exists())
                filepath.mkdirs();
            // 文件保存路径
            String savePath = PICTUREURL + filename1;
            // 转存文件
            file.transferTo(new File(savePath));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    String url = CONFIGUREURL + filename1;
    return url;
}



@PostMapping("/upload")
    public String uploadFile(@RequestParam("file") MultipartFile file) throws MalformedURLException {
        if(file.isEmpty()){ //若文件选择为空,就上传失败
            return "上传失败,请选择文件!";
        }
        String fileName=file.getOriginalFilename();//获取文件上传的文件名
        String filePath = "D:/fileSource/pic"; //指定到上传的文件路径
//        URL url = new URL("http://admgt1.hdjad.com/adxmg/fileSource/pic");
        File dir = new File(filePath);
        if (!dir.exists()) {  //若路径不存在,则创建一个这样的文件夹
            System.out.println("路径不存在");
            dir.mkdirs();
        }
        try {
            File papers = new File(filePath, fileName); //创建了一个File对象，名字是papers ，路径是filePath，名字是fileName。
//然后就可以调用这个对象的相关方法完成文件创建，删除，读取，写入等操作
            file.transferTo(papers);    //将上传的文件写入创建好的文件中
            return ("上传成功!文件路径为:"+filePath+"/"+fileName);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "上传失败!";
    }
}
